package com.only4play.practice.pay.reconcile.core.model.payconfig;

import com.only4play.codegen.support.constants.ValidStatus;
import com.only4play.practice.common.enums.pay.OutPayChannelType;
import lombok.Data;

/**
 * @author mengdy
 */
@Data
public class AliPayConfig implements PayConfig{

    /** 是否沙箱环境 */
    private ValidStatus isSandbox;

    /** 是否服务商模式 */
    private ValidStatus isServiceProvider;

    /** 是否服务商 */
    private ValidStatus isService;

    /** 支付宝应用id */
    private String appId;

    /** 支付宝子应用id */
    private String subAppId;

    /** app_auth_token */
    private String appAuthToken;

    /** 接口加签方式 公钥模式: SECRET || 证书模式: CERT */
    private String interfaceSignType;

    /** 应用私钥 */
    private String privateKey;

    /** 支付宝公钥，通过应用公钥上传到支付宝开放平台换取支付宝公钥*/
    private String publicKey;

    /** 应用公钥证书 (证书模式必须) */
    private String appCertPath;

    /** 应用公钥证书的base64编码 (证书模式必须) */
    private String appCertB64;

    /** 支付宝公钥证书 (证书模式必须) */
    private String alipayCertPath;

    /** 支付宝公钥证书的base64编码 (证书模式必须) */
    private String alipayCertB64;

    /** 支付宝根证书 (证书模式必须) */
    private String alipayRootCertPath;

    /** 支付宝根证书的base64编码 (证书模式必须) */
    private String alipayRootCertB64;

    // 回调通知域名
    private String domain;
    @Override
    public OutPayChannelType getChannelType() {
        return OutPayChannelType.ALIPAY;
    }
}
